iT邦幫忙

2019 iT 邦幫忙鐵人賽

DAY 30
0
自我挑戰組

Go to 放棄系列 第 30

go optimistic concurrency

  • 分享至 

  • xImage
  •  

如果application server要scale,會遇到Optimistic concurrency control
使用的解法是在資料表上,有個欄位為version
執行時:

entry.Amount = entry.Amount + 50.000
err = globalDB.C("test").Update(bson.M{
    "version": entry.Version,
    "_id":     entry.ID,
}, bson.M{"$set": map[string]interface{}{
    "amount":  entry.Amount,
    "version": (entry.Version + 1),
}})

如果version沒有對應到,代表其他AS已經操作過這筆

再次利用vegeta

echo "GET http://localhost:3001" | vegeta attack -rate=100 -connections=1 -duration=1s | tee results.bin | vegeta report

https://ithelp.ithome.com.tw/upload/images/20181114/20112477TQjQShTQbr.png


上一篇
go mutli queue
系列文
Go to 放棄30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言